var editor = monaco.editor.create(document.getElementById("container"), {
  value: [
    "",
    "class Example {",
    "\tprivate m:number;",
    "",
    "\tpublic met(): string {",
    '\t\treturn "Hello world!";',
    "\t}",
    "}",
  ].join("\n"),
  language: "typescript",
});

// 解释:
// 按 F1（Edge 按 Alt-F1）=>如果是状态是 enabled，则 action 将会显示并运行
// 按 Ctrl-F10 => 如如果是状态是 enabled，则该 action 将运行
// 按 Ctrl-K，Ctrl-M => 如如果是状态是 enabled，则该 action 将运行

editor.addAction({
  // 操作的唯一标识符。
  id: "my-unique-id",

  // 将显示给用户的标签。
  label: "My Label!!!",

  // 此 action 绑定的按键（可选）
  keybindings: [
    monaco.KeyMod.CtrlCmd | monaco.KeyCode.F10,
    // 组合
    monaco.KeyMod.chord(
      monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_K,
      monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_M
    ),
  ],

  // 此 action 执行的前提条件。
  precondition: null,

  // 在前提条件之上的规则，以便分派 keybindings。
  keybindingContext: null,

  contextMenuGroupId: "navigation",

  contextMenuOrder: 1.5,

  // 触发 action 时将执行的方法。
  // @param ed 为方便起见，传递了编辑器实例。
  run: function (ed) {
    alert("i'm running => " + ed.getPosition());
    return null;
  },
});
